Notes
-
Nix is:
-
A package manager
-
A programming language
-
An operating system (NixOS, a Linux distro)
-
-
Nix can be used like
brew
orapt
# this will install curl nix-env -iA curl
-
Nix's selling point is that it's capable of reproducible builds
-
One thing that's unique about Nix (the package manager) is that you can create ad-hoc development environments
# this spawns a new shell with curl installed # once this shell is exited, it will no longer be available nix-shell -p curl
-
nix-shell
allows for the creation of isolated development environments -
NixOS, unlike other Linux distros, allows a user to specify their configuration using the Nix package manager
-
For example, if I wanted to create a user whose default shell was
zsh
, I could do this via a configuration. The rest of my system's configuration would live here too -
This also allows for rollbacks to any previous configuration
-
Nix, being a functional programminglanguage, basically describes system configuration like
state
nextState(currentState)=
-
Resources (from article)
- public document at doc.anagora.org/20200629132641-so_tell_me_about_nix
- video call at meet.jit.si/20200629132641-so_tell_me_about_nix